Archief - php: mysql_query() error

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

DarkBone

Legacy Member
killer bel zei:
ik versta engels, meer dan gij denkt. maar als ge dinges moet begrijpen in het engels terwijl ge het in het nederlands nog maar amper begrijpt word het toch wel moeilijk
v
Daar hebt ge wel een punt, ik geef toe dat de MySQL manual nu niet onmiddelijk de meest newbie vriendelijke is :)

Maar uit de voorbeelden kunt ge al veel opsteken, laat u nie afschrikken door de 'vreemde' notaties zoals de vele [ | ] { } etc... De betekenis ervaan staat normaal ook uitgelegd in het begin van de manual.

dJeez

Legacy Member
Sedert wanneer is zeggen dat je de basis moet leren iemand afbreken? Er bestaan voldoende basiswerken over relationele databases. Als iemand u hier op een presenteerblaadje een oplossing geeft ben je er niks mee, aangezien je dan niet snapt waarover het gaat en domweg iets gaat toepassen zoals die persoon het zegt. Op die manier kan je imho nooit iets bijleren, vandaar dus : leer eerst wat relationele databases zijn en hoe ze werken. Pas als je die basis kent en snapt kan je werken met databases.

killgore

Legacy Member
killer bel zei:
ik versta engels, meer dan gij denkt. maar als ge dinges moet begrijpen in het engels terwijl ge het in het nederlands nog maar amper begrijpt word het toch wel moeilijk
1 tip: phpfreakz sux vo 95%, leer daar niets, maar ook niets van.

voor de rest: mysql kundce enkel leren via trial by error, dev.mysql.com is nie om het te leren ma voor jou te helpen ;).

el73

Legacy Member
PHP:
$result = mysql_query($query) or die (mysql(error());
Je bent een ) vergeten.

DarkBone

Legacy Member
$query="DELETE FROM test WHERE naam='" .$_POST["naam"] . "'";

Single quotes rond string waarden!!

dJeez

Legacy Member
Rechtstreeks werken met $_POST in queries is vragen om problemen. SQL Injection anyone?

killer bel

Legacy Member
ok, ik heb nog een klein vraagje, de moeite niet om een topic op te starten.

hoe kan ik alle oneven en even records halen uit een mysql database?

dus bv SELECT * FROM site where rubriek_id = ".$_GET["r"]." ORDER BY site_waarde DESC limit 26

en dan moet daar nog iets staan dat alleen de even en oneven records er uit haalt

iemand de oplossing?

alvast bedankt

xml

Legacy Member
Euh, oneven? :/ Bedoel je dan de records met een oneven ID of zo? Dan is het gemakkelijker denk ik ze allemaal op te halen en te filteren in php.

killer bel

Legacy Member
neen kijk ik sorteer op op de waarde van de site van veel naar weinig. de id liggen daardoor door elkaar dus daar kan ik al niet op rekenen.
ik heb dus van die lijst de nummer 1 - 3 -4 -5 enz nodig en in een andere query de nummer 2 - 4 - 6 enz.. snap je wat ik bedoel?

killer bel

Legacy Member
of kan er ook iets in deze aard?

SELECT * FROM site LIMIT 0, 1 AND LIMIT 2, 1 AND LIMIT 3, 1 AND LIMIT 5, 1 AND ....

deze werkt wel niet maar is er iets dat dezelfde output zou weergeven?

dJeez

Legacy Member
Neen, je moet dat puur in code oplossen, er bestaat geen query voor, zeker niet aangezien MySQL geen ROWNUM (zals Oracle) kent.

killer bel

Legacy Member
damn, weet je toevallig zo een truukje of key-words die ik moet ingeven in google?
ik heb al met verschillende lussen geprobeerd dat op te lossen maar niets wil lukken.

dJeez

Legacy Member
Er zijn 1000-en manieren om dat op te lossen. Maar soit, 1 van de simpelste misschien?

Je haalt de resultaten op via je query. Je maakt 1 lus, die over het resultaat gaat en 2 variabelen om de output in bij te houden. Is de teller van je lus even (te testen via vb. $lus % 2 == 0) dan voeg je de output (html, xml, whatever) toe aan de eerste variabele, is de teller van de lus oneven dan voeg je de output toe aan de 2e variabele.

Op het einde heb je dus alle even records in de eerste var staan en alle oneven records in de tweede.

killer bel

Legacy Member
ik heb zoiets in de aard al gedaan zoals je zei:

PHP:
<?php
include_once('_inc/header.php'); 

$query = "SELECT * FROM site where rubriek_id = ".$_GET["r"]." ORDER BY site_waarde DESC LIMIT 26";
$result = mysql_query($query) or die(mysql_error());
$aantal = mysql_num_rows($result);
for($i=1; $i <= $aantal; $i++){
if($i%2 != 0){
while($rij = mysql_fetch_array($result)){
?>
<table width="250" border="0" class="table">
  <tr>
    <td width="286" class="header"><a href="http://<?php echo($rij["site_url"]); ?>"><?php echo($rij["site_title"]); ?></a></td>
  </tr>
</table>
<table width="250" border="0" class="table">
  <tr>
    <td width="127"><img src="images/screenshots/<?php echo($rij["site_shot"]); ?>" width="127" height="127"></td>
    <td width="127"><?php echo(substr($rij["site_text"], 0, 125)); ?></td>
  </tr>
</table>

<?php
break;
}else{
echo(">br><br>");
}
}

}

?>

maar het probleem is als het daadwerkelijk oneven laat hij terug alle eerste 26 rijen zien. wat je ook verwacht als je dit script ziet. en als hij terug oneven is nog, eens. enz, enz...

hoe kan je nu maken dat hij telkens maar 1 rij laat zien en dan een rij overslaat en terug een rij laat zien, enz, enz..

xml

Legacy Member
euh, die 'for' buitenzwieren en je if binnen je while zetten natuurlijk. :/

ff de "pseudo-code" neerpennen:

Code:
teller = 0;
while (er zijn nog records) {
  if (teller % 2 == 0) {
    evenOutput .= ....
  } else }
    onevenOutput .= ....
  }
  teller++;
}

Best eens iets lezen over "controlestructuren".

killer bel

Legacy Member
hartlijk bedankt het werkt perfect.

ik weet wel iets over controlestructuren maar denkwijze was fout. ik dacht dat je nog een ergens een maximum moest invoeren zoals bij for(). maar dat blijkt dus niet te zijn!

bedankt!

killer bel

Legacy Member
ik heb nog een klein vraagje, het is een mengeling van php en html.

ik haal met een query de gegevens uit de database en stop die in een tabel.
nu zou ik graag willen dat er zo 2 tabellen naast elkaar komen en daaronder weer twee tabellen, enz..

maar het enige wat ik krijg is 1 rij van tabellen en niet 2

weet iemand hoe je dat kan oplossen?

alvast bedankt

EDIT:// laat maar ik heb het gevonden

Rvl

Legacy Member
begin eerst is me php.net te raadplegen voordat je voor elke kleine fout hier komt vragen. Tot zover ik heb gezien heb je geen enkel probleem zelf opgelost maar altijd door iemand anders laten oplossen. dus mijn oplossing voor jou problemen WWW.PHP.NET

tikketim

Legacy Member
voor een beginner is php.net niet altijd aven duidelijk ...
vooral omdat je meestal niet weet waar je naar moet zoeken
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan