de id opzoeken via tekstveld

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fabian webstars

Fabian webstars

07/07/2015 10:08:47
Quote Anchor link
Hallo,

ik heb dit script nog niet omgezet naar mysqli maar ga dat wel doen.
Ik heb 2 tabellen, de eerste heet "liedjes" en de ander "artiesten" bij liedjes is een kolom genaamd artiestnaam waar nummers staan. bijvoorbeeld nummer 2 is gelijk aan Ariana grande in de tabel artiesten.
met dit script wil ik dat je een artiest kan invullen en dat het script kijkt welk id die artiest heeft
dus als je "Ariana grande" invult moet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $id = mysql_real_escape_string($_GET['id']); ?>
2 zijn. Is dat überhaupt mogelijk? en het werkt nu niet (alweer niet :P) als het mogelijk is, hoe moet ik dat doen dan??

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
if(isset($_POST['submit']))
{

    $naam = mysql_real_escape_string($_POST['naam']);
    $sort = mysql_real_escape_string($_POST['sort']);
    $genre = mysql_real_escape_string($_POST['genre']);
    if(intval($_GET['id'])) {
    $id = mysql_real_escape_string($_GET['id']);
    }

    else {
    $artiest = mysql_real_escape_string($_POST['artiest']);
    $id = mysql_real_escape_string($_GET['id']);
    $sql = "
    SELECT id
    FROM artiesten
    WHERE artiest="
.$artiest."
    "
;
    }


    $songtekst = mysql_real_escape_string($_POST['songtekst']);

$sql = "INSERT INTO liedjes
       (naam, sort, genre, favoriet, profiel, position, artiestnaam, songtekst, mp3 )
       VALUES('$naam', '$sort', '$genre', 'nee', 'nee', '', '$id', '$songtekst', '$naam')
       "
;
$retval = mysql_query( $sql, $mysql_connect );
if(! $retval )
{

  die('FOUT ' . mysql_error());
}

?>


<a href="http://web-stars.nl/muziek/artiest.php?id=<?php echo $_GET['id']; ?>" style="color:#000000;">gelukt <br /> klik hier om naar de artiest te gaan</a>

<?php
}
else
{
?>

<div class="row">
<div class="col-md-5">
<form method="post" action="<?php $_PHP_SELF ?>">

<div class="form-group">
    <label for="naam">liedjes naam</label>
  <input type="text" name="naam" class="form-control" id="naam">
  </div>  
 

<div class="form-group">
    <label for="sort">sorteren op alfabet als eerste letter van liedjesnaam</label>
  <input type="text" name="sort" class="form-control" id="sort">
  </div>  
  
<div class="form-group">
    <label for="genre">genre</label>
  <input type="text" name="genre" class="form-control" id="genre" >
  </div>

  <?php
  if(intval($_GET['id'])) {
  }

  else {
      ?>

  <div class="form-group">
    <label for="artiest">artiest</label>
  <input type="text" name="artiest" class="form-control" id="artiest" >
  </div>
  <?php }
  ?>


Fabian
Gewijzigd op 07/07/2015 10:27:49 door Fabian webstars
 
PHP hulp

PHP hulp

27/04/2024 06:16:17
 
Eddy E

Eddy E

07/07/2015 10:22:58
Quote Anchor link
Schrijf eens in gewone taal (Nederlands) uit wat je op regel 1 tot en met 20 doet.
Teken het eens met wat lijnen.

Dan zie je dat van je logica geen bal klopt.

2 Als er een submit-knop is ingedrukt (fout #1: wat als ze op enter drukken?)
3 DAN
4 $naam pak ik uit iets waarvan ik niet weet of het er is (fout #2: kijk of deze ook echt bestaat)
5 $sort pak ik uit iets waarvan ik niet weet of het er is (fout #2)
6 $genre pak ik uit iets waarvan ik niet weet of het er is (fout #2)
7 als $_GET['id'] (die er misschien niet eens is? Fout #3) een getal is...
DAN
8 $id pak ik uit een string met tekst die ik beveilig (fout #4: stom, want het is al een INTEGER, zie regel 7)
9 EINDE DAN
10 ALS $_GET['id'] geen integer is...
DAN
11 $artiets pak ik uit iets wat niet bestaat (fout #2)
12 $id pak ik uit iets wat geen integer is... wellicht bestaat hij niet eens? (fout #5
13 Ik maak een $sql aan, waarin ik iets doe met $artiest, maar niets met het $id
14 EINDE DAN

Je doet later niets met $sql?
Ja, overschrijven met een INSERT die je niet controleert etc.
Ga eerst je logica eens uitschrijven, gewoon op papier met een potlood.
Teken dan zo'n diagram met JA/NEE:

Afbeelding

En ga daar mee aan de slag.
Pas als dat rond is, ga je hem uitwerken in PHP.
 
Fabian webstars

Fabian webstars

07/07/2015 10:24:44
Quote Anchor link
bedankt ik zal der naar kijken
maar hij werkt wel als ik op enter druk
Gewijzigd op 07/07/2015 10:54:32 door Fabian webstars
 
Eddy E

Eddy E

07/07/2015 15:36:51
Quote Anchor link
Wat dus niet zegt dat je echt van het formulier af komt ;)
 
Thomas van den Heuvel

Thomas van den Heuvel

07/07/2015 19:48:52
Quote Anchor link
@Fabian

Het is redelijk simpel: als je niet wilt dat mensen fouten kunnen maken bij het invullen, bied hun dan deze keuze gewoon niet, maar bied een set van vaste waarden aan.

Oftewel: maak van het artiest-veld een (multi)select en sla (for the love of God) een artiest-id op bij een album/nummer, in plaats van een of andere foutgevoelige lijpe lookup in de verwerking.

Maak voor het toevoegen van een artiest een apart formulier. Wil je albums/nummers toevoegen, moet je eerst zorgen dat de artiest toegevoegd is. Daardoor krijgen dingen een beetje een volgorde.

En liedjes staan meestal op een album? :/

Een artiest heeft een of meer albums
Een album bestaat uit een of meer tracks
etc.

(uitzondering: singles)
?
Gewijzigd op 07/07/2015 19:52:03 door Thomas van den Heuvel
 
Fabian webstars

Fabian webstars

07/07/2015 20:35:37
Quote Anchor link
ik heb inderdaad een pagina waar je artiesten kan toevoegen, (heb nu meer dan 100 artiesten) maar misschien is het inderdaad beter om een andere manier te gebruiken ja

ik ben bezig met albums, maar ben al druk genoeg :P dus ik doe het lekker op mijn eigen tempo, stap voor stap en ben trouwens niet alleen met de muziekpagina bezig. ook met alle andere en dat zijn er voor mijn doen best veel :)

maar je hebt wel gelijk ja. tis niet echt handig.
 
- Ariën  -
Beheerder

- Ariën -

07/07/2015 21:11:31
Quote Anchor link
Als je voor een zoekfunctie een waarde wilt invullen, die ergens gelijk aan moet zijn, bied dan een auto-suggest systeem aan. Dit kan eenvoudig met jQueryUI.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.